[VIBE CODED] Feat: Intelligent provider#4100
[VIBE CODED] Feat: Intelligent provider#4100ivanarifin wants to merge 31 commits intoKilo-Org:mainfrom
Conversation
Add new "Intelligent Provider" that automatically selects appropriate provider profiles (easy, medium, hard) based on request complexity. Includes schema definitions, API handler, UI components, validation, and internationalization support for seamless integration.
|
|
Neat! It says WIP, but does it work? Would like to try it. |
@mcowger yeah it's working, i want to make more improvements though. Open to ideas and suggestions. Also as you know about the profile id bug, i can't save the profile sometimes, but turns out it's the released version, I thought that was on me 🫠 |
…lidation handling - Streamline classifier prompt to be more concise and focused - Extract task classification to separate variable for clarity - Add validation error propagation from IntelligentProvider to ApiOptions - Improve parent component error handling with onValidationChange callback
Refactor IntelligentHandler to assess task difficulty only once per user message instead of on every createMessage call. Add rawUserPrompt and isInitialMessage metadata to track assessment state, implement assessment caching with race condition prevention, and update UI components to exclude intelligent provider from model listings.
Introduce frontend-based keyword assessment for task difficulty in the intelligent provider. This reduces redundant AI evaluations by pre-assessing and caching difficulty levels, allowing the handler to reuse results across conversations and task resets. Updates include new interface fields, event-driven state management, and UI integration for sending pre-assessed difficulty with messages.
|
hey @mcowger if you're intrested you can now try this provider |
- Consolidate profile handlers into unified ProfileMap structure - Move type definitions to shared types module for better reusability - Extract classifier prompt as class constant for maintainability - Refactor profile loading logic to use helper methods and parallel execution - Remove frontend difficulty assessment logic to streamline chat component - Extract validation logic into custom hook for better separation of concerns
Remove the preAssessedDifficulty property from task options, interfaces, and handlers to simplify the codebase, as it is no longer needed after recent restructuring.
|
Nice idea! We'll test this soon! |
@kevinvandijk thanks! Looking forward to your feedback |
Resolved conflicts in: - src/core/task/Task.ts: Merged intelligent provider listener and correct apiConfiguration usage - src/core/webview/ClineProvider.ts: Added OAuth authentication states while keeping intelligentActiveModel - src/core/webview/webviewMessageHandler.ts: Merged image resolution feature with createTask call - src/shared/ExtensionMessage.ts: Adopted re-export shim architecture from main - webview-ui/src/components/kilocode/chat/ModelSelector.tsx: Added activeProfileNumber to virtualQuotaActiveModel while keeping intelligentActiveModel - webview-ui/src/components/settings/constants.ts: Merged provider lists with proxy field and all providers - webview-ui/src/i18n/locales/zh-TW/kilocode.json: Kept intelligentProvider translations with improved shareModesNewBanner All features from both branches have been preserved.
…uto-provider branch)
Fixed pre-existing JSON syntax errors in 11 translation files that were preventing the build from completing. All files were missing a comma after the intelligentProvider closing brace before the deviceAuth section. Files fixed: - cs/kilocode.json - de/kilocode.json - es/kilocode.json - fr/kilocode.json - hi/kilocode.json - ru/kilocode.json - th/kilocode.json - tr/kilocode.json - uk/kilocode.json - vi/kilocode.json - zh-CN/kilocode.json These errors existed in the auto-provider branch before the merge with main.
…rameters Add undefined and empty object parameters to mockProvider.createTask calls in image mentions integration tests to match updated function signature.
Context
Auto Provider that will switch between 3 profiles based on task difficulty, can possibly reduce cost and setup for simple task without switching profile
Implementation
Vibecoded inspired by the Gemini CLI auto model to use AI as the classifier for the difficulty
Screenshots
How to Test
Use it in the provider
Get in Touch
ivanarifin